/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/* ===== autocomplete.css =================================================
  == Styles used by the autocomplete widget.
  ======================================================================= */

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
@namespace html url("http://www.w3.org/1999/xhtml");

/* ::::: autocomplete ::::: */

/* .padded is used by autocomplete widgets that don't have an icon. Gross. -dwh */
textbox:not(.padded) {
  cursor: default;
  padding: 0;
}

textbox[enablehistory="true"] {
  -moz-appearance: none;
  border: 0;
  background-color: transparent;
}

textbox[nomatch="true"][highlightnonmatches="true"] {
  color: red;
}

.autocomplete-textbox-container {
  -moz-box-align: center;
}

textbox[enablehistory="true"] > .autocomplete-textbox-container {
  -moz-appearance: menulist-textfield;
}

textbox:not(.padded) .textbox-input-box {
  margin: 0 3px;
}

.textbox-input-box {
  -moz-box-align: center;
}

/* ::::: autocomplete popups ::::: */

panel[type="autocomplete"],
panel[type="autocomplete-richlistbox"],
.autocomplete-history-popup {
  border: 1px solid ThreeDShadow;
  padding: 0;
  color: -moz-FieldText;
  background-color: -moz-Field;
  -moz-appearance: none;
}

.autocomplete-history-popup {
  max-height: 180px;
}

/* ::::: tree ::::: */

.autocomplete-tree {
  -moz-appearance: none !important;
  border: none !important;
  background-color: transparent !important;
}

.autocomplete-treecol {
  -moz-appearance: none !important;
  margin: 0 !important;
  border: none !important;
  padding: 0 !important;
}

/* GTK calculates space for a sort arrow */
.autocomplete-treecol > .treecol-sortdirection {
  -moz-appearance: none !important;
}

.autocomplete-treebody::-moz-tree-cell-text {
  padding-inline-start: 8px;
}

treechildren.autocomplete-treebody::-moz-tree-row(selected) {
 background-color: Highlight;
}

treechildren.autocomplete-treebody::-moz-tree-cell-text(selected) {
  color: HighlightText !important;
}

.autocomplete-treebody::-moz-tree-image(treecolAutoCompleteValue) {
  max-width: 16px;
  height: 16px;
}

/* ::::: richlistbox autocomplete ::::: */

.autocomplete-richlistbox {
  -moz-appearance: none;
  margin: 1px;
  background-color: transparent;
}

.autocomplete-richlistitem[selected] {
  background-color: Highlight;
  color: HighlightText;
}

.ac-type-icon {
  width: 16px;
  height: 16px;
  max-width: 16px;
  max-height: 16px;
  margin-inline-start: 13px;
  margin-inline-end: 6px;
}

.ac-site-icon {
  width: 16px;
  height: 16px;
  max-width: 16px;
  max-height: 16px;
  margin-inline-start: 0;
  margin-inline-end: 11px;
  list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.png");
}

.ac-site-icon[selected] {
  list-style-image: url("chrome://mozapps/skin/places/defaultFavicon-inverted.png");
}

@media (min-resolution: 1.1dppx) {
  .ac-site-icon {
    list-style-image: url("chrome://mozapps/skin/places/defaultFavicon@2x.png");
  }
  .ac-site-icon[selected] {
    list-style-image: url("chrome://mozapps/skin/places/defaultFavicon-inverted@2x.png");
  }
}

.ac-title {
  margin-inline-start: 0;
  margin-inline-end: 6px;
}

html|span.ac-tag {
  margin-inline-start: 0;
  margin-inline-end: 2px;
}

.ac-tags {
  margin-inline-start: 0;
  margin-inline-end: 4px;
}

.ac-separator {
  margin-inline-start: 0;
  margin-inline-end: 6px;
}

/* Better align the URL/action with the title. */
.ac-tags,
.ac-separator,
.ac-url,
.ac-action {
  margin-bottom: -2px;
}

.ac-title-text,
.ac-tags-text,
.ac-separator-text,
.ac-url-text,
.ac-action-text,
.ac-text-overflow-container {
  padding: 0 !important;
  margin: 0 !important;
}

/* ::::: textboxes inside toolbarpaletteitems ::::: */

toolbarpaletteitem > toolbaritem > textbox > hbox > hbox > html|*.textbox-input {
  visibility: hidden;
}

toolbarpaletteitem > toolbaritem > * > textbox > hbox > hbox > html|*.textbox-input {
  visibility: hidden;
}
